home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / lib / cryptsetup / checks / vol_id < prev    next >
Text File  |  2009-10-14  |  1KB  |  38 lines

  1. #!/bin/sh
  2. # this script depends on /lib/udev/vol_id from the udev package
  3.  
  4. # usage: vol_id <device> <fs_type>
  5. # <device> may be any device that should be checked.
  6. # if no <fs_type> is given, the check fails if no valid filesystem is found.
  7. # if <fs_type> is given, the check fails when no filesystem type <fs_type>
  8. # is found on the device. if <fs_type> is 'none', the check fails if any
  9. # know filesystem is found.
  10.  
  11. # note that the 'minix' fs is filtered out if checking for any valid fs,
  12. # as it has been reported that this fs my be detected erroneously by vol_id.
  13.  
  14. if test ! -x "/lib/udev/vol_id"; then
  15.   echo " - WARNING: vol_id from udev is not available, impossible to run checks."
  16.   exit 0
  17. fi
  18.  
  19. dev=$1
  20. fs=$2
  21.  
  22. vol_id="$(/lib/udev/vol_id -t $dev 2>&1)"
  23.  
  24. # vol_id output if $dev has an unknown filesystem
  25. pattern="$(echo $dev | sed 's/\//\\\//g')"
  26. unknown="$(/lib/udev/vol_id -t /dev/null 2>&1 | sed "s/\/dev\/null/$pattern/g")"
  27.  
  28. if [ "$vol_id" = "$unknown" ] && [ -z "$fs" ]; then
  29.   echo " - The device $dev does not contain a known filesystem."
  30.   exit 1
  31. elif [ "$vol_id" != "$unknown" ] && [ "$vol_id" != "minix" ] && [ "$fs" = "none" ]; then
  32.   echo " - The device $dev contains a valid filesystem type $vol_id."
  33.   exit 1
  34. elif [ -n "$fs" ] && [ "$vol_id" != "$fs" ]; then
  35.   echo " - The device $dev does not contain a filesystem type $fs."
  36.   exit 1
  37. fi
  38.